package org.example.classtopia.Service;

import org.example.classtopia.Model.dto.CourseCreateDTO;
import org.example.classtopia.Model.dto.CourseUpdateDTO;
import org.example.classtopia.Model.dto.CourseQueryDTO;
import org.example.classtopia.Model.Entity.Course;
import org.example.classtopia.Model.vo.CourseVO;
import org.example.classtopia.Model.vo.PageResultVO;

import java.util.List;

public interface
CourseService {

    // 创建课程
    Course createCourse(CourseCreateDTO courseCreateDTO);

    // 根据ID获取课程详情
    CourseVO getCourseById(Long id);

    // 根据用户ID、学期和周次分页获取该周课程列表
    List<CourseVO> getCoursesByUserAndWeek(CourseQueryDTO queryDTO);

    // 更新课程信息
    boolean updateCourse(CourseUpdateDTO courseUpdateDTO);

    // 删除课程（逻辑删除）
    boolean deleteCourseById(Long id);

    void sendTodayScheduleReminders(Long userId, String semester, int currentWeek, int currentDayOfWeek);

    // 新增课程（重载，接收Course对象）
    Course createCourse(Course course);

    List<Course> findConflicts(Long userId, Integer fromWeek, Integer endWeek, Integer day, String s, String s1);
}

